The ability of businesses to conduct transactions with customers (as well as with other businesses) over the Internet using “online storefronts” has enabled such businesses to greatly expand their potential customer base while substantially reducing costs related to maintaining “brick and mortar” businesses. However, such transactions, handled at a distance and not face-to-face, also present unique problems, particularly with regards to how merchants make their products or services known to potential buyers. Some of these problems relate to how merchants construct and maintain websites or software applications used to provide services for customers.
A web browser (sometimes referred to as a client browser or a browser) is a client software application primarily used for accessing, retrieving, presenting, and traversing website data from websites hosted by remote web servers. Although browsers are primarily intended to be used to navigate and present data contained on web-pages that are part of the Internet (the World Wide Web), they can also be used to access information provided by web servers that are part of private networks or files residing in local file systems.
A website is a set of related data files called webpages and other data files containing content (or a “link” to content) such as text, images, video, audio, etc. A single website may be hosted on one or more web servers and may thereby be made accessible to remote client computers and applications, for instance via the Internet using a web “address” known as a uniform resource locator (URL) (where as noted, the publicly accessible websites collectively constitute the “World Wide Web”). A webpage is a human-readable and computer-readable data file, typically containing text and links to other data files, such as image files. The data is intended to be displayed to a client-user in accordance with computer-readable formatting instructions that communicate to a client-application, such as a web browser, how to display the text and linked data files. Webpages may, for example, be described using (or written in) a “markup” language such as hypertext markup language (HTML) or extensible hypertext markup language (XHTML). Each webpage may contain one or more of text, images, a “button” to activate a recorded audio or video segment, etc. A linking or ordering of a website's webpages conveys a perceived structure of the website to an end user and guides the user's navigation of the website. Many websites include a homepage (or index page), which generally provides basic information about the website, links to the website's other webpages/content, as well as links to supplementary information (such as an “about” page, a “contact” page, and/or a “site map” page). Typically, at the direction of a user, a client application (such as a web browser) will access a webserver and request a particular page of a website (e.g., based on a URL or other form of identifying the location of a desired page). In response, the webserver will transmit the appropriate web page or set of related web pages and other data files to the client application and the application will render the webpage content according to its formatting instructions for display to a user.
Webpages may be static or dynamic, that is they may contain static and/or changeable content. A website's static web pages (which may be some or all of the site's web pages) are stored on a web server in the format that is sent to the client web browser, and are commonly written in HTML. Simple forms, fixed marketing examples of websites, and other fixed content websites are often static websites (i.e., they contain solely or predominantly static web pages), because they present pre-defined, static information to a user. This may include information about a company and its products and services that is provided through text, photos, animations, audio/video segments, and interactive menus and navigation tools. This type of website usually displays the same information to all visitors. Similar to the act of handing out a printed brochure to customers or clients, a static website will generally provide consistent, standard information for an extended period of time. Although the website owner may make updates periodically, it is a manual process to edit the text, photos, and other content and may only require basic website design skills and software tools.
In contrast, a dynamic webpage (i.e., a web page that includes at least some dynamic or “active” content) displays content that varies based on parameters provided by a client browser. This permits the web page to be “customized” in response to characteristics of the viewer, the viewer's location, etc. For example when a user accesses a website's “log-in” page, the user typically provides a user name and password, and activates a log-in “button”. In response to the “button” activation, the user's web browser transmits the user name and password to a URL linked to the “button.” In response, the web server hosting the website may, rather than simply deliver a predefined static file, instead execute a script that confirms the user name and password are a valid combination, followed by delivering content appropriate to that user. The user specific content may be selected based on data known about the user based on the current or on a previous session, such as user location, the user's previous search histories, the user's “click-through” behavior, etc.
Modern websites can be extremely robust and feature rich, providing many advantages to both the operators and users of the websites. However, the development of such websites can be an extremely time consuming and complex process, requiring the cooperation and coordination of many teams of developers. “Web development” is a broad term for the work involved in developing a public or private website. Web development can range from developing a simple static single page of plain text to complex web-based internet applications, eCommerce platforms, and social network services. Some tasks to which web development commonly refers include web design, web content development, client liaison, client-side/server-side scripting, web server and network security configuration, and eCommerce development. For larger organizations and businesses, web development teams may consist of hundreds of people. Further, web development may be a collaborative effort between departments rather than the domain of a designated department, and/or may be a collaborative effort between multiple software engineers, content editors or content developers in different locations.
Because of the complexity of some websites and/or web pages, a team of developers may work on updates, corrections, or maintenance of a website concurrently. This can create potential problems if team members are working on related portions of a website, such as web pages that depend upon one another for content or presentation of information. In such a situation, changes made to one section of a website may not be reflected in web pages or other information that another developer is using as the basis for their own work. Further, it is typically desirable that at least some features and functions of a website be available to users even while future website features are being developed.
Because of these potential problems and in recognition of the manner in which website development is performed, it would be advantageous for different developers to be able to simultaneously work on independent future (i.e., derivative) versions of an existing base website, where the base site itself may be subject to ongoing changes and updates. For example, an existing eCommerce website may be hosted on a webserver and be accepting traffic from users/clients. However, even while the website is operating, there may be developers working on short-term patches to the website or making other changes, while other developers may be making long-term changes to the website such as creating a new seasonal version, an updated version for the next year, or developing an entirely new section of the site (such as a “factory” store offering discounted goods).
Conventional approaches to providing a software development environment that enables website developers to simultaneously work on independent future versions (“derived” versions) of a base website, while still permitting updates to the base website itself, suffer from one or more disadvantages related to administrative overhead or potential difficulties in scaling site management workflows to meet the demands of complex web-sites and businesses that operate multiple web-sites. Embodiments of the invention address this and other needs both individually and collectively.